home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Mail / pine3.92 / pine / osdep / expnfldr.dos < prev    next >
Text File  |  1995-12-11  |  2KB  |  46 lines

  1. /*----------------------------------------------------------------------
  2.       Expand a folder name, taking account of the folders_dir.
  3.  
  4.   Args: filename -- The name of the file that is the folder
  5.  
  6.  Result: The folder name is expanded in place.  
  7.          Returns 0 and queues status message if unsuccessful.
  8.          Input string is overwritten with expanded name.
  9.          Returns 1 if successful.
  10.  
  11. BUG should limit length to MAXPATH
  12.   ----*/
  13. int
  14. expand_foldername(filename)
  15.     char *filename;
  16. {
  17.     char         temp_filename[MAXPATH+1];
  18.  
  19.     dprint(5, (debugfile, "=== expand_foldername called (%s) ===\n",filename));
  20.  
  21.     /*
  22.      * We used to check for valid filename chars here if "filename"
  23.      * didn't refer to a remote mailbox.  This has been rethought
  24.      */
  25.  
  26.     strcpy(temp_filename, filename);
  27.     if(strucmp(temp_filename, "inbox") == 0) {
  28.         strcpy(filename, ps_global->VAR_INBOX_PATH == NULL ? "inbox" :
  29.                ps_global->VAR_INBOX_PATH);
  30.     } else if(temp_filename[0] == '*' || temp_filename[0] == '{'){
  31.         strcpy(filename, temp_filename);
  32.     } else if(temp_filename[0] == '\\'
  33.           || (isalpha(temp_filename[0]) && temp_filename[1] == ':')) {
  34.     fixpath(temp_filename, MAXPATH);
  35.         strcpy(filename, temp_filename);
  36.     } else if(F_ON(F_USE_CURRENT_DIR, ps_global)){
  37.     strcpy(filename, temp_filename);
  38.     } else if(ps_global->VAR_OPER_DIR){
  39.     build_path(filename, ps_global->VAR_OPER_DIR, temp_filename);
  40.     } else {
  41.     build_path(filename, ps_global->folders_dir, temp_filename);
  42.     }
  43.     dprint(5, (debugfile, "returning \"%s\"\n", filename));    
  44.     return(1);
  45. }
  46.